﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ExtensionsAPI.NetworkAPI {
	/// <summary>
	/// Interfejs 'ISocket' jest odpowiedzialny za implementację danych kontaktu potrzebnych do komunikacji z nim.
	/// </summary>
	public interface ISocket {
		/// <summary>
		/// Pole 'Identifier' słóży do przechowywania identyfikatora użytkownika w danej sieci.
		/// Implementacje użycia i zasady określające poprawność określa wtyczka.
		/// </summary>
		string Identifier { get; set; }
		/// <summary>
		/// Pole 'UniqueIdentifier' słóży do przechowywania niepowtarzalnego identyfikatora użytkownika w danej sieci.
		/// Może on zawierać dodatkowe informacje, które nie są wymagane do komunikacji z użytkownikiem.
		/// Często zawierają identyfikator sesji w celu odróżniena zalogowania na wielu urządzeniach jednocześnie.
		/// </summary>
		string UniqueIdentifier { get; }
		/// <summary>
		/// Pole 'Format' zawiera informacje o formacie identyfikatora [Pole może ulec zmianie]
		/// </summary>
		string Format { get; }
		/// <summary>
		/// Pole 'PluginServer' przewidziane jest na kod rozpoznawalny dla danej wtyczki.
		/// </summary>
		string PluginServer { get; }
		/// <summary>
		/// 
		/// </summary>
		INetworkExtension PluginInstance { get; }
	}
}